[#936] Redesign airdrop hero + chart as combined section#937
[#936] Redesign airdrop hero + chart as combined section#937realproject7 merged 4 commits intomainfrom
Conversation
- Combined CampaignHero and chart into one cohesive section - Live countdown (d:h:m:s) updating every second - Expanded explanation (5% supply, milestone-based, burn) - Lock-up proof link (placeholder when LOCKER_ID not set) - 6-month timeline chart with 3 lines: actual FDV, linear projection, pool value - Milestone markers (Bronze/Silver/Gold/Diamond) with emojis - Heartbeat-animated dot on current FDV position - Current FDV + zone + pool value displayed below chart - Correct pool value calculation per tier - New /api/airdrop/daily-prices endpoint for historical FDV data - Removed standalone MilestoneTrack from sidebar Fixes #936 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
…icks - Linear projection now starts from current time (nowX) instead of chart start - Removed yRightTicks labels that overlapped with milestone emoji labels Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The combined hero/chart is directionally right, but the chart logic hard-codes the production FDV thresholds and max target instead of using the active airdrop config. That breaks the existing NEXT_PUBLIC_AIRDROP_MODE=test path and makes the milestone lines, pool-value math, current zone label, and projection incorrect outside prod.
Findings
- [high] Chart math ignores the active campaign milestone configuration
- File:
src/components/airdrop/CampaignHero.tsx:35 - Suggestion: Stop hard-coding
TIERS,DIAMOND_FDV, and the pool/zone thresholds. Use the milestone values already returned by/api/airdrop/status(or a shared config source) so prod and test mode render the same logic.
- File:
- [medium] Pool area starts from the first DB row even when that row predates the campaign window
- File:
src/components/airdrop/CampaignHero.tsx:216 - Suggestion: Derive
firstXfrom the first in-range daily price, notdailyPrices[0], so the filled area cannot start left of the chart when historical rows exist beforecampaignStart.
- File:
Decision
Requesting changes because the first issue is a behavior regression in a supported mode, not just a visual polish item.
- Derive tier thresholds from API milestones (respects test/prod config) - poolValueAtFdv/currentZoneLabel now accept tiers parameter - Clamp pool area fill start to campaignStart (fixes pre-campaign data) - Remove hardcoded DIAMOND_FDV constant Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The first two issues are fixed, but the chart still keeps one production-only constant in its FDV scaling. That means the visualized timeline is still wrong in NEXT_PUBLIC_AIRDROP_MODE=test.
Findings
- [high] FDV chart scale is still hard-coded to the prod ceiling
- File:
src/components/airdrop/CampaignHero.tsx:140 - Suggestion: derive the FDV axis max from the active milestone set (for example from the Diamond tier, with a small headroom factor) and pass it into
fdvToY, instead of hard-coding200_000_000. With the current code, test-mode milestones like$7k/$10k/$35k/$50kall collapse near the chart bottom and the chart no longer reflects the configured campaign.
- File:
Decision
Keeping this in request-changes because the issue is a functional regression in the supported test configuration, not just a styling preference.
- fdvToY now accepts logMax param derived from diamond FDV (2x headroom) - Removes last hardcoded prod value (FDV_LOG_MAX=200M) - Test mode milestones now render correctly across the chart Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The requested fixes are in place. The chart now derives milestone math and FDV scaling from the active campaign config, and the area fill is clamped to the campaign window.
Findings
- None.
Decision
Approving because the prior blocking issues were resolved and the required checks are now passing.
Summary
CampaignHerosection with live d:h:m:s countdown, expanded campaign explanation, lock-up proof link, and a 6-month SVG timeline chart/api/airdrop/daily-pricesendpoint serving historical FDV data frompl_daily_pricesfor the timeline chart; removed standaloneMilestoneTrackfrom sidebarFixes #936
Test plan
/api/airdrop/daily-pricesreturns date + fdv array🤖 Generated with Claude Code